<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Cadastro extends MY_Controller
{
	public function __construct() {
		parent::__construct();

		if(!$this->isPessoaLoggedIn()){
			redirect('paravoce/home');
		}

		// Carregamento dos models utilizados no cadastro
		$this->load->model('negocio/estado_model');
		$this->load->model('negocio/cidade_model');
		$this->load->model('negocio/paravoce_model');

		$this->setViewData('user_info', $this->getLoggedUser());
	}

	public function index()
	{
		$this->cadastro();
	}

	public function cadastro(){
		
		$usuario = $this->getLoggedUser();

		if ($usuario['cod']) 
		{
			// Carregamento dos models utilizados no cadastro
			$this->load->model('negocio/estado_model');
			$this->load->model('negocio/cidade_model');
			$this->load->model('negocio/paravoce_model');

			// Carrega cliente logado
			$cliente = new Cliente($usuario['cod']);
			
			// tipo(1=erro,2=alerta,3=sucesso), mensagem
			$formMessage = array();

			//
			// Recebimento das variáveis do formulário
			// Somente dados que podem ser alterados
			//
			$datetime           = $this->input->post('datetime');
			$nome				= $this->input->post('nome');
			$telefone			= $this->input->post('telefone');
			$celular			= $this->input->post('celular');
			$data_nascimento	= $this->input->post('data_nascimento');
			$cliente_bloqueado	= 0;
			$bloqueado 			= 0;		
			$senha_atual		  = $this->input->post('senha_atual');
			$nova_senha			  = $this->input->post('nova_senha');
			$confirmar_nova_senha = $this->input->post('confirmar_nova_senha');

			$formdata = array(
				'cpf_cliente'	  => /*$cpf_cliente !== FALSE 	? $cpf_cliente 		: */$cliente->getCPF(),
				'email_cliente'	  => /*$email_cliente !== FALSE 	? $email_cliente 	: */$cliente->getEmail(),
				'nome' 			  => $nome !== FALSE 			? $nome 	: $cliente->getNome(),
				'telefone' 		  => $telefone !== FALSE 		? $telefone : $cliente->getTelefone(),
				'celular'  		  => $celular !== FALSE 		? $celular 	: $cliente->getCelular(),
				'data_nascimento' => $data_nascimento !== FALSE ? $data_nascimento : $cliente->getDataNascimentoFormatada()
			);

			if ($datetime && !$senha_atual) 
			{
				// Criação do cliente				
				//$cliente->setCPF($cpf_cliente);
				//$cliente->setEmail($email_cliente);
				//$cliente->setSenha($senha_atual);
				$cliente->setNome($nome);
				$cliente->setTelefone($telefone);
				$cliente->setCelular($celular);
				list($dia, $mes, $ano) = explode('/', $data_nascimento);
				$cliente->setDataNascimento($ano.'-'.$mes.'-'.$dia);
				//$cliente->setEndereco($endereco);
				//$cliente->setNumero($numero);
				//$cliente->setBairro($bairro);
				//$cliente->setCEP($cep);
				//$cliente->setCidade($cidade);

				$validacao = $cliente->gravar();

				if (!$validacao[0]) {
					$formMessage = array(1, $validacao[1]);				
				}
				else {
					$formMessage = array(3, 'Seu cadastro foi alterado com sucesso.');
					
					foreach ($formdata as $chave) {
						$formdata[$chave] = '';
					}
				}

				$this->setViewData('form_origem', 'cadastro');
			}
			else
			if ($datetime && $senha_atual)
			{
				if ($cliente->comparePassword($senha_atual)) 
				{
					if ($nova_senha != $senha_atual) 
					{
						$cliente->setSenha($nova_senha);
						$cliente->gravar();
					}
					$formMessage = array(3, 'Senha alterada com sucesso.');
				}
				else
					$formMessage = array(1, 'Senha atual inválida.');
				
				$this->setViewData('form_origem','alterar_senha');
			}
			//
			// Adiciona Scripts não padrão no carregamento da página
			//
			// plugin validação + extras para validar CPF/CNPJ e mensagens padrão
			$this->addScript(base_url('assets/js/jquery.validate.min.js'));
			$this->addScript(base_url('assets/js/shared/validation.js'));
			// plugin p/ colocar máscara nos campos
			$this->addScript(base_url('assets/js/jquery.maskedinput.min.js'));
			// script p/ a página
			$this->addScript(base_url('assets/js/paravoce/meucadastro.js'));

			// Dados que serão enviados para a view
			$this->setViewData('cliente', $cliente);
			$this->setViewData('main_content', 'paravoce/meucadastro');
			$this->setViewData('estados', $this->estado_model->getAll());
			$this->setViewData('cidades', $this->cidade_model->getAll());
			$this->setViewData('formmessage', $formMessage);
			$this->setViewData('formdata', $formdata);

			// Carrega a view
			$this->load->view('_shared/template', $this->viewData);
		}
		else
			redirect('paravoce/acessar');
	}
}
?>